﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UeyesAIS.Interface
{
    /// <summary>
    /// 画面检光学硬件服务
    /// </summary>
    public abstract class BaseDeviceControl
    {
        /// <summary>
        /// 上测光
        /// </summary>
        /// <param name="inten">光强</param>
        public abstract void OpenUpSideLight(byte inten);
        /// <summary>
        /// 下侧光
        /// </summary>
        /// <param name="inten">光强</param>
        public abstract void OpenDownSideLight(byte inten);
        /// <summary>
        /// 关闭上侧光
        /// </summary>
        public abstract void CloseUpSideLight();
        /// <summary>
        /// 关闭下侧光
        /// </summary>
        public abstract void CloseDownSideLight();
        /// <summary>
        /// 开背光
        /// </summary>
        /// <param name="inten">光强</param>
        public abstract void OpenBackLight(byte inten);
        /// <summary>
        /// 关背光
        /// </summary>
        public abstract void CloseBackLight();
        /// <summary>
        /// 切图
        /// </summary>
        /// <param name="index">图号索引</param>
        public abstract void ChangeColor(int index);
        /// <summary>
        /// 检测前准备
        /// </summary>
        public abstract bool Begin();
        /// <summary>
        /// 检测后准备
        /// </summary>
        public abstract void End();
        /// <summary>
        /// 多相机
        /// </summary>
        public List<ICameraAdapter> Cameras;
        /// <summary>
        /// 图像接收器
        /// </summary>
        public EventHandler<Bitmap> ImageReceiveed;
        /// <summary>
        /// 上侧光源状态
        /// </summary>
        public DeviceStatusEnum SideUpLightS;
        /// <summary>
        /// 下侧光源状态
        /// </summary>
        public DeviceStatusEnum SideDownLightS;
        /// <summary>
        /// 背光源状态
        /// </summary>
        public DeviceStatusEnum BackLightS;
        /// <summary>
        /// 电测机状态
        /// </summary>
        public DeviceStatusEnum ElectricS;
        /// <summary>
        /// 相机状态
        /// </summary>
        public DeviceStatusEnum CameraS;
        /// <summary>
        /// 通讯状态
        /// </summary>
        public DeviceStatusEnum OnlineS;
        /// <summary>
        /// 电测机状态
        /// </summary>
        public DeviceStatusEnum Ele_MachS;
        /// <summary>
        /// 
        /// </summary>
        public string ETSMsg;
        /// <summary>
        /// 
        /// </summary>
        public string CameraMsg;
        /// <summary>
        /// 
        /// </summary>
        public string OnlineMsg { get; internal set; }
    }
}
